// ActionScript file
import classes.Cidade;

import flash.events.Event;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;

import title_window.title_cidade;

public var popUp:title_cidade;	
//objeto do tipo curso
[Bindable]
public var cidade:Cidade; 
//array responsavel por preencher a tabela
[Bindable]
public var lista:ArrayCollection;

/*
FUNÇÃO CHAMADA LOGO APÓS A TELE SER REQUISITADA
-chama a funcao cursos cadastrados
-adicona eventos aos botoes editar e excluir da tabela			
*/
protected function inicializa(event:FlexEvent):void
{
	cidades_cadastrados();
	dgCidade.addEventListener("editar", editar);
	dgCidade.addEventListener("excluir", excluir);
}
/*
-responsavel por chamar metodo listar todos (Java)
-usada após todas as operações (inserir, editar, remover, listar)
-obj:atualizar a tabela
*/
protected function cidades_cadastrados():void
{
	//this.controle_cidade.listarTodosCidade();
}			
//abre o title window (pop-up) para cadastrar novo curso
protected function novo():void
{
	popUp=title_cidade(PopUpManager.createPopUp(this,title_cidade,true));
	popUp.addEventListener("PopUpFechou",fechou);	//salvou					
}
//chamada após fechar o pop-up de cadastro
private function fechou(evt:Event):void //salvou
{
	//cidade=popUp.cidade;				
	//this.controle_cidade.inserirCidade(cidade);
	
	//lista as cidades cadastradas
}

//abre o title window (pop-up) para editar o curso
public function editar(e:Event):void
{
	popUp=title_cidade(PopUpManager.createPopUp(this,title_cidade,true));
	//popUp.addEventListener("PopUpFechou",editou);	
	popUp.addEventListener("PopUpFechou",fechou);
	popUp.cidade=Cidade (dgCidade.selectedItem);					
}
//chamada após fechar o pop-up de editar
/*
private function editou(evt:Event):void
{				
	cidade=popUp.cidade;	
	//this.controle_cidade.editarCidade(cidade);
}
*/
//evento botão excluir da tabela
//verifica se deseja ou nao excluir
public function excluir(e:Event):void
{
	Alert.show("Excluir a cidade '"+dgCidade.selectedItem.nome+"' ?","Excluir Cidade", Alert.YES | Alert.NO ,null,opcao);	
}
//verifica a resposta do usuario
private function opcao(event:CloseEvent):void{
	if(event.detail==Alert.YES){					
		//this.controle_cidade.removerCidade(dgCidade.selectedItem);
	}					
}

/*
FUNÇÕES CHAMADAS CASO OS MÉTODOS DE INSERIR, EDITAR, REMOVER E LISTAR OBTIVERAM SUCESSO 
*/
//emite mensagem e atualiza a tabela
/*
protected function inserir_result(event:ResultEvent):void
{
	Alert.show("Cadastrado com sucesso");
	//cidades_cadastrados();
}			
*/
//emite mensagem e atualiza a tabela
/*
protected function editar_result(event:ResultEvent):void
{
	Alert.show("editado com sucesso");
	//cidades_cadastrados();
}
*/
//emite mensagem e atualiza a tabela
protected function remover_result(event:ResultEvent):void
{
	Alert.show("removido com sucesso");
	cidades_cadastrados();
}
//preenche a tabela
protected function listar_result(event:ResultEvent):void
{
	lista=event.result as ArrayCollection;
}


/*
FUNÇÕES CHAMADAS CASO OS MÉTODOS DE INSERIR, EDITAR, REMOVER E LISTAR OBTIVEREM ALGUM ERRO
*/	
//emite mensagem 
/*
protected function inserir_fault(event:FaultEvent):void
{
	Alert.show("Erro ao cadastrar cidade");
}
*/
//emite mensagem
/*
protected function editar_fault(event:FaultEvent):void
{
	Alert.show("Erro ao editar");
}
*/
//emite mensagem
protected function remover_fault(event:FaultEvent):void
{
	Alert.show("Erro ao remover");
}
//emite mensagem
protected function listar_fault(event:FaultEvent):void
{
	Alert.show("Erro aos listar");
}